home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 15 / CU Amiga Magazine's Super CD-ROM 15 (1997)(EMAP Images)(GB)[!][issue 1997-10].iso / CUCD / Graphics / DocMa / Developer / c / test / test.c < prev   
Encoding:
C/C++ Source or Header  |  1997-04-06  |  8.5 KB  |  197 lines

  1. #include <proto/exec.h>
  2. #include <proto/asl.h>
  3. #include <proto/muimaster.h>
  4. #include <clib/alib_protos.h>
  5. #include <clib/muimaster_protos.h>
  6. #include <libraries/asl.h>
  7. #include <libraries/mui.h>
  8. #include <libraries/iffparse.h>
  9. #include <stdio.h>
  10. #include <string.h>
  11. #include "/include/docmafr_protos.h"
  12. #include "/include/docmafr_pragmas.h"
  13.  
  14.  
  15. #define AGET_ID 1
  16. #define DGET_ID 2
  17.  
  18.  
  19. /*=============================================================================
  20. Global vars
  21. -----------------------------------------------------------------------------*/
  22.  
  23. LONG __stack = 16384;
  24. Object         *app, *win, *aget, *dget, *alist, *dlist, *multi, *patgad, *savemode, *drawers;
  25. struct Library *DocMaFRBase, *MUIMasterBase, *AslBase;
  26.  
  27.  
  28. /*=============================================================================
  29. Hilfsfunktionen
  30. -----------------------------------------------------------------------------*/
  31.  
  32. LONG xget (Object *obj, ULONG attribute)
  33. {
  34.   LONG x;
  35.  
  36.   get (obj, attribute, &x);
  37.   return (x);
  38. }
  39.  
  40.  
  41. BOOL OpenLibs (void)
  42. {
  43.   DocMaFRBase   = OpenLibrary ("docmafr.library", 1);
  44.   MUIMasterBase = OpenLibrary ("muimaster.library", 14);
  45.   AslBase       = OpenLibrary ("asl.library", 39);
  46.   if (DocMaFRBase && MUIMasterBase && AslBase) return (TRUE);
  47.   return (FALSE);
  48. }
  49.  
  50.  
  51. void CloseLibs (void)
  52. {
  53.   if (DocMaFRBase) CloseLibrary (DocMaFRBase);
  54.   if (MUIMasterBase) CloseLibrary (MUIMasterBase);
  55.   if (AslBase) CloseLibrary (AslBase);
  56. }
  57.  
  58.  
  59. Object *MakeLabel1 (char *str)
  60. {
  61.  return (MUI_MakeObject (MUIO_Label, str, MUIO_Label_SingleFrame));
  62. }
  63.  
  64.  
  65. Object *MakeLabel2 (char *str)
  66. {
  67.   return (MUI_MakeObject (MUIO_Label, str, MUIO_Label_DoubleFrame));
  68. }
  69.  
  70.  
  71. void printreq (Object *list, struct FileRequester *req)
  72. {
  73.   struct WBArg *frargs;
  74.   int           x;
  75.   char          line[1000];
  76.  
  77.   DoMethod (list, MUIM_List_Clear);
  78.   set (list, MUIA_List_Quiet, TRUE);
  79.   sprintf (line, "fr_File: %s", req->fr_File); DoMethod (list, MUIM_List_InsertSingle, line, MUIV_List_Insert_Bottom);
  80.   sprintf (line, "fr_Drawer: %s", req->fr_Drawer); DoMethod (list, MUIM_List_InsertSingle, line, MUIV_List_Insert_Bottom);
  81.   sprintf (line, "fr_NumArgs: %d", req->fr_NumArgs); DoMethod (list, MUIM_List_InsertSingle, line, MUIV_List_Insert_Bottom);
  82.   sprintf (line, "fr_ArgList:"); DoMethod (list, MUIM_List_InsertSingle, line, MUIV_List_Insert_Bottom);
  83.   for (x = 0, frargs = req->rf_ArgList; x < req->rf_NumArgs; x++)
  84.   {
  85.     sprintf (line, " %d: %s %ld", x, frargs[x].wa_Name, frargs[x].wa_Lock); DoMethod (list, MUIM_List_InsertSingle, line, MUIV_List_Insert_Bottom);
  86.   }
  87.   sprintf (line, "fr_UserData: %s", req->fr_UserData); DoMethod (list, MUIM_List_InsertSingle, line, MUIV_List_Insert_Bottom);
  88.   sprintf (line, "fr_Pattern: %s", req->fr_Pattern); DoMethod (list, MUIM_List_InsertSingle, line, MUIV_List_Insert_Bottom);
  89.   set (list, MUIA_List_Quiet, FALSE);
  90. }
  91.  
  92.  
  93. void main (void)
  94. {
  95.   ULONG                 res, sigs=0;
  96.   struct FileRequester *areq, *dreq;
  97.  
  98.   if (OpenLibs ())
  99.   {
  100.     if (dreq = AllocDocMaRequestTags (ASL_FileRequest,
  101.                                        ASL_Hail,      "DocMa FileRequest",
  102.                                        ASL_Dir,       "sys:",
  103.                                      TAG_END))
  104.     {
  105.       if (areq = AllocAslRequestTags (ASL_FileRequest,
  106.                                           ASL_Hail,      "Asl FileRequest",
  107.                                           ASL_Dir,       "sys:",
  108.                                         TAG_END))
  109.       {
  110.  
  111.         if (app = ApplicationObject,
  112.                     MUIA_Application_Title,       "DOCMAFRTEST",
  113.                     MUIA_Application_Author,      "Marc Ewert",
  114.                     MUIA_Application_Version,     "$VER: DocMaFRTest 1.0 (06.04.97)",
  115.                     MUIA_Application_Copyright,   "© 1997, Marc Ewert",
  116.                     MUIA_Application_Description, "Document Manager Filerequester Test",
  117.                     MUIA_Application_Base,        "DOCMAFRTEST",
  118.                     MUIA_Application_Window,
  119.                       win = WindowObject,
  120.                         MUIA_Window_Title, "DocMaFR Test",
  121.                         MUIA_Window_ID, MAKE_ID ('D','T','E','S'),
  122.                         MUIA_Background, MUII_WindowBack,
  123.                         WindowContents,
  124.                           VGroup,
  125.                             Child, HGroup,
  126.                                      Child, multi = MUI_MakeObject (MUIO_Checkmark, "Multiselect"),
  127.                                      Child, MakeLabel1 ("MultiSelect"),
  128.                                      Child, HSpace (0),
  129.                                      Child, patgad = MUI_MakeObject (MUIO_Checkmark, "PatGad"),
  130.                                      Child, MakeLabel1 ("PatGad"),
  131.                                      Child, HSpace (0),
  132.                                      Child, savemode = MUI_MakeObject (MUIO_Checkmark, "SaveMode"),
  133.                                      Child, MakeLabel1 ("SaveMode"),
  134.                                      Child, HSpace (0),
  135.                                      Child, drawers = MUI_MakeObject (MUIO_Checkmark, "NoFiles"),
  136.                                      Child, MakeLabel1 ("NoFiles"),
  137.                                      Child, HSpace (0),
  138.                                    End,
  139.                             Child, HGroup,
  140.                                      Child, alist = ListObject,
  141.                                                       MUIA_Background, MUII_ReadListBack,
  142.                                                       MUIA_Frame, MUIV_Frame_ReadList,
  143.                                                       MUIA_List_ConstructHook, MUIV_List_ConstructHook_String,
  144.                                                       MUIA_List_DestructHook, MUIV_List_DestructHook_String,
  145.                                                       MUIA_List_Title, "Asl FileRequester",
  146.                                                     End,
  147.                                      Child, dlist = ListObject,
  148.                                                       MUIA_Background, MUII_ReadListBack,
  149.                                                       MUIA_Frame, MUIV_Frame_ReadList,
  150.                                                       MUIA_List_ConstructHook, MUIV_List_ConstructHook_String,
  151.                                                       MUIA_List_DestructHook, MUIV_List_DestructHook_String,
  152.                                                       MUIA_List_Title, "DocMa FileRequester",
  153.                                                     End,
  154.                                    End,
  155.                             Child, HGroup,
  156.                                      Child, aget = MUI_MakeObject (MUIO_Button, "AslRequest"),
  157.                                      Child, HSpace(0),
  158.                                      Child, dget = MUI_MakeObject (MUIO_Button, "DocMaRequest"),
  159.                                    End,
  160.                           End,
  161.                       End,
  162.                 End)
  163.         {
  164.           DoMethod (win, MUIM_Notify, MUIA_Window_CloseRequest, TRUE, app, 2, MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit);
  165.           DoMethod (aget, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_ReturnID, AGET_ID);
  166.           DoMethod (dget, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_ReturnID, DGET_ID);
  167.           set (win, MUIA_Window_Open, TRUE);
  168.           while ((res = DoMethod(app,MUIM_Application_NewInput,&sigs)) != MUIV_Application_ReturnID_Quit)
  169.           {
  170.             switch (res)
  171.             {
  172.               case AGET_ID:
  173.                 AslRequestTags (areq, ASLFR_Screen, xget (win, MUIA_Window_Screen), ASLFR_DoMultiSelect, xget (multi, MUIA_Selected), ASLFR_DoPatterns, xget (patgad, MUIA_Selected), ASLFR_DoSaveMode, xget (savemode, MUIA_Selected), ASLFR_DrawersOnly, xget (drawers, MUIA_Selected), TAG_END);
  174.                 printreq (alist, areq);
  175.                 break;
  176.               case DGET_ID:
  177.                 DocMaRequestTags (dreq, ASLFR_Screen, xget (win, MUIA_Window_Screen), ASLFR_DoMultiSelect, xget (multi, MUIA_Selected), ASLFR_DoPatterns, xget (patgad, MUIA_Selected), ASLFR_DoSaveMode, xget (savemode, MUIA_Selected), ASLFR_DrawersOnly, xget (drawers, MUIA_Selected), TAG_END);
  178.                 printreq (dlist, dreq);
  179.                 break;
  180.             }
  181.             if (sigs)
  182.             {
  183.               sigs = Wait(sigs | SIGBREAKF_CTRL_C);
  184.               if (sigs & SIGBREAKF_CTRL_C) break;
  185.             }
  186.           }
  187.           set (win, MUIA_Window_Open, FALSE);
  188.           MUI_DisposeObject (app);
  189.         }
  190.         FreeAslRequest (areq);
  191.       }
  192.       FreeDocMaRequest (dreq);
  193.     }
  194.   }
  195.   CloseLibs ();
  196. }
  197.